package com.achievement.service;

import com.achievement.domain.dto.honor.HonorApplyInfoDTO;
import com.achievement.domain.entity.HonorApplyInfoEntity;
import com.achievement.domain.param.honor.HonorApplyInfoParam;
import com.achievement.domain.vo.honor.HonorApplyInfoPersonnelVO;
import com.achievement.domain.vo.honor.HonorApplyInfoVO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.HashMap;
import java.util.List;

public interface IHonorApplyInfoService extends IService<HonorApplyInfoEntity> {
    List<HonorApplyInfoVO> selectByPage(HonorApplyInfoParam param);

    List<HashMap<String, Integer>> listStatistics(HonorApplyInfoParam param);

    List<HonorApplyInfoEntity> getListByConditions(LambdaQueryWrapper<HonorApplyInfoEntity> queryWrapper);
    HonorApplyInfoVO getInfoById(String id);


    boolean add(HonorApplyInfoDTO dto);

    boolean update(HonorApplyInfoDTO dto);

    boolean updateStatusById(HonorApplyInfoDTO dto);

    boolean batchRemove(List<String> ids);

    /**
     * 科研人员获取自己的申报计划列表
     * @return
     */
    List<HonorApplyInfoPersonnelVO> selectHonorApplyInfoPersonnelByPage(String userId);
}
